package cn.edu.lingnan.fruitshop.service;

import cn.edu.lingnan.fruitshop.common.JSONResult;
import cn.edu.lingnan.fruitshop.pojo.Goodstable;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.ui.Model;
import org.springframework.ui.Model;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpSession;
import org.springframework.ui.Model;
import org.springframework.ui.Model;

import javax.servlet.http.HttpSession;
import org.springframework.ui.Model;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 张小凡
 * @since 2022-01-04
 */
public interface GoodstableService extends IService<Goodstable> {

    //根据商品类型显示商品信息
    public String showGoods(Model model);

    //查看更多——水果页面
    public String Seemore(Model model, HttpSession session,Integer typeId);

    //点击查看商品详情

    String goodDetail(Integer goodId,Model model,HttpSession session);


    //    从商品详情进入提交订单页面
    String settlement(Integer goodId,Model model,Integer num,HttpSession session,Integer orderId,Integer addressStatus);

    //商品图片异步上传
    JSONResult<Void> picture(MultipartFile file);

    //获取商品图片URL
    JSONResult<Void> getPictureUrl();

    //添加商品
    JSONResult<Void> addGoods(String name,String newPrice,
                              String store,String goodDetail,Integer typeId,HttpSession session);

    // 检查商品名称
    JSONResult<Void> checkName(String goodName);

    // 检查商品详细
    JSONResult<Void> checkGoodDetail(String goodDetail);

    //检查商品数量
    JSONResult<Void> checkGoodNum(String goodNum);

    //检查商品价格
    JSONResult<Void> checkGoodPrice(String goodPrice);

    //商品信息页面，默认商家编号为2
    String toGoodsInfo(Model model,HttpSession session,Integer pageNum);

    //跳转到更新商品
    String toUpdateGoodIndex(Integer id,Model model,Integer pageNum,HttpSession session);

    //更新商品
    JSONResult<Void> updateGood(String name,String newPrice,
                                String store,String goodDetail,Integer typeId,Integer id,HttpSession session);

    //删除商品，即改变商品状态
    String deleteGoodById(Integer id,Integer pageNum);

    //批量删除
    String batchDeleteGood(String goodIds);
    /**
     * 搜索
     * @param model
     * @param goodsName
     * @return
     */
    String searchForGoods(Model model,String goodsName);

    /**
     *
     * @param pageNum:当前页数
     * @param pageSize：当前页大小，即当前页有第几条记录
     * @param queryWrapper：查询条件
     * @return
     */
    public PageInfo getPageInfo(Integer pageNum, Integer pageSize, QueryWrapper<Goodstable> queryWrapper);

    //商家查看与自己店铺有关的查看订单详情
    public String sellerQueryOrder(Model model, HttpSession session);

    //商家查看每种商品的详细购买情况
    public String sellerOrderDetail(String goodId,Model model);

    // 商家查看全部评论： 管理评论
    public String queryComments(Model model,HttpSession session);


}
